Kurvenscheiben programmatisch erstellen
Das Beispielprojekt BasicMotion_CreateCamTableOnline.project ist im Installationsverzeichnis von CODESYS unter ..\CODESYS SoftMotion\Examples zu finden.
Das Beispiel zeigt, wie Sie eine Kurvenscheibe im IEC-Code erstellen und verwenden können. Dabei wird auf die folgenden Punkte eingegangen:
Eine im Kurvenscheibeneditor erzeugte Kurvenscheibe wird im IEC-Code nachgebaut.
In einem Fall wird die Kurvenscheibe in der Bus-Task erzeugt.
Im anderen Fall wird die Kurvenscheibe in einer eigenen Task erzeugt.
Alle drei Kurvenscheiben werden abschließend mit der gleichen Masterachse und unterschiedlichen Slaveachsen ausgeführt. Die Bewegung der drei Slaves ist dabei identisch.
Die im IEC-Code erzeugte Kurvenscheibe wird in der Visualisierung dargestellt.
Für weitere Informationen rund um die programmatische Erstellung von Kurvenscheiben siehe: Programmatisches Anlegen von Kurvenscheiben
Aufbau der Applikation
Die Applikation besteht aus den folgenden Bestandteilen:
CamOfflineDie im Kurvenscheibeneditor erzeugte Kurvenscheibe, die im IEC-Code nachgebaut werden soll.
PLC_PRGDas Programm besteht aus einer einfachen Zustandsmaschine und logisch gesehen aus drei Teilen. Im ersten und zweiten Teil wird eine Kurvenscheibe im IEC-Code erstellt. Im dritten Teil werden die zuvor erstellten Kurvenscheiben sowie eine offline angelegte, identische Kurvenscheibe ausgeführt.
Teil 1:
Im ersten Zustand
STATE_CREATE_ONLINE_TABLEwird eine Kurvenscheibe im IEC-Code angelegt. Dazu wird der Baustein SMCB.CamBuilder aus der BibliothekSM3_CamBuilderverwendet. Es werden 3 Segmente angehängt: Ein Poly5-Element gefolgt von einem Line-Element und einem weiteren Poly5-Element. Der Builder erzeugt daraus eine Kurvenscheibe CamOnline. Ab diesem Zeitpunkt ist die Kurvenscheibe im IEC-Code angelegt und kann, wie die offline im Kurvenscheibeneditor angelegte Kurvenscheibe CamOffline, verwendet werden.Teil 2:
In den Zuständen
STATE_INIT_ONLINE_TABLE_MULTITASK,STATE_START_CREATE_ONLINE_TABLE_MULTITASKundSTATE_READ_ONLINE_TABLE_MULTITASKwird das Anlegen der Kurvenscheibe in einer anderen Task gestartet und abschließend wird diese ausgelesen.Teil 3:
Im Zustand
STATE_POWER_DRIVESwerden die virtuellen Achsen für den Master und der drei Slaveachsen initialisiert. Daraufhin werden die Kurvenscheiben mitMC_CamTableSelectim ZustandSTATE_SELECT_TABLEausgewählt und im finalen ZustandSTATE_MOVEMENTausgeführt. Die Masterachse wird mitMC_MoveVelocitybewegt und dient als Master für die drei Kurvenscheiben.
MultitaskCamBuilderEin Programm, das, wie in Teil 1 von
PLC_PRGbeschrieben, eine Kurvenscheibe erzeugt. Einziger Unterschied ist hier, dass eine Multitask/Multicore sichere Variante der Kurvenscheibe verwendet wird.GVLHier ist die Multitask/Multicore sichere Variante der Kurvenscheibe instanziiert.
VisualizationDie Visualisierung beinhaltet das Element
SMC_Visu_CamDisplayerzum Darstellen von Kurvenscheiben. Es wird die in Teil 1 vonPLC_PRGerzeugte Kurvenscheibe angezeigt.CamDisplayerSettingsZusätzliche Elemente für die Darstellung der Kurvenscheibe in
VisualizationTrace
Mithilfe des Trace können Sie die Bewegung der virtuellen Achsen nachvollziehen. Es wird die aktuelle Position des Masters, sowie die Position, Geschwindigkeit und Beschleunigung der drei Slaveachsen aufgezeichnet.
Inbetriebnahme
Übersetzen Sie die Applikation und laden Sie sie auf eine Steuerung.
Starten Sie den Trace und die Applikation.
Beobachten Sie die Traceaufzeichnung
Anzeige der erzeugten Kurvenscheibe in der Visualisierung